(include "class/hset/class.inc")

(def-class 'hmap 'hset)
(dec-method :vtable 'class/hmap/vtable)
(dec-method :create 'class/hmap/create)
(dec-method :init 'class/hmap/init)
(dec-method :find 'class/hmap/find)
(dec-method :copy 'class/hmap/copy)
(dec-method :list 'class/hmap/list :static '(r0) '(r0 r1))
(dec-method :insert 'class/hmap/insert :static '(r0 r1 r2) '(r0 r1 r2))
(dec-method :search 'class/hmap/search :static '(r0 r1) '(r0 r1 r2))
(dec-method :set 'class/hmap/set :static '(r0 r1 r2) '(r0 r1))
(dec-method :get 'class/hmap/get :static '(r0 r1) '(r0 r1))
(dec-method :set_parent 'class/hmap/set_parent :static '(r0 r1) '(r0))

(dec-method :deinit 'class/hmap/deinit :override)

(dec-method :lisp_env 'class/hmap/lisp_env :static '(r0 r1) '(r0 r1))
(dec-method :lisp_def 'class/hmap/lisp_def :static '(r0 r1) '(r0 r1))
(dec-method :lisp_defq 'class/hmap/lisp_defq :static '(r0 r1) '(r0 r1))
(dec-method :lisp_set 'class/hmap/lisp_set :static '(r0 r1) '(r0 r1))
(dec-method :lisp_setq 'class/hmap/lisp_setq :static '(r0 r1) '(r0 r1))
(dec-method :lisp_get 'class/hmap/lisp_get :static '(r0 r1) '(r0 r1))
(dec-method :lisp_undef 'class/hmap/lisp_undef :static '(r0 r1) '(r0 r1))
(dec-method :lisp_parent 'class/hmap/lisp_parent :static '(r0 r1) '(r0 r1))
(dec-method :lisp_list 'class/hmap/lisp_list :static '(r0 r1) '(r0 r1))

(def-struct 'hmap 'hset)
	(ptr 'parent)
(def-struct-end)
